package study.ws.area.dao.impl;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;

import study.ws.area.dao.IAreaDao;
import study.ws.area.pojo.Area;
import study.ws.area.utils.JDBCUtil;

/**  
* @Name: AreaDaoImpl
* @Description: 区域查询dao接口实现类
* @Author: 李超
* @Create Date: 2017-01-07
*/
public class AreaDaoImpl implements IAreaDao {

	/**  
	* @Name: queryArea（方法的名称）
	* @Description: 根据父级区域id、起始、结束记录号查询区域信息（方法的描述）
	* @Author: 李超（作者）
	* @Version: V1.00 （版本号）
	* @Create Date: 2017-01-07 （创建日期）
	* @Parameters: String parentID 父级区域id
	* 			   int start 起始记录号
	* 			   int end 结束记录号（方法的入参，如果没有，填写为“无”）
	* @Return: List<Area> 返回查询结果集合（返回值，如果没有，填写为“无”）
	*/
	@Override
	public List<Area> queryArea(String parentID, int start, int end) {
		String sql = "select * from area where parentid = ? limit ?, ? ;" ;
		Connection con = null ;
		PreparedStatement ps = null ;
		ResultSet rs = null ;
		List<Area> list = new ArrayList<>() ;
		try {
			con = JDBCUtil.getConnection() ;
			ps = con.prepareStatement(sql) ;
			ps.setString(1, parentID) ;
			//获取记录数
			int len = end - start + 1 ;
			ps.setInt(2, start-1) ;
			ps.setInt(3, len) ;
			rs = ps.executeQuery() ;
			while(rs.next()) {
				Area area = new Area() ;
				area.setAreaID(rs.getString("areaid")) ;
				area.setAreaName(rs.getString("areaname")) ;
				area.setParentID(rs.getString("parentid")) ;
				area.setAreaLevel(rs.getString("arealevel")) ;
				list.add(area) ;
			}
		} catch (Exception e) {
			e.printStackTrace() ;
		} finally {
			JDBCUtil.close(con, ps, rs) ;
		}
		return list;
	}

}
